package A2018;

import java.util.Scanner;

public class _8_2全球变暖 {
	static char[][] s = new char[1002][1002];;
	public static void main(String[] args) {
		int i, n, j, ans = 0, sum = 0;
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		sc.nextLine();
		for (i = 1; i <=n; i++) {
			String str = "."+sc.nextLine();
			s[i] = str.toCharArray();
		}
		for (i = 1; i <= n; i++)// 找寻多少块岛屿；
			for (j = 1; j <= n; j++)
				if (s[i][j] == '#') {
					zx(i, j); // 将同一块岛屿 标记防重复
					ans++;
				}
		for (i = 1; i <= n; i++)// 找寻那些块岛屿不会被淹；
			for (j = 1; j <= n; j++)
				if (s[i][j] >= '4' && s[i][j] <= '9') {
					s[i - 1][j] += 1;
					s[i + 1][j] += 1;
					s[i][j - 1] += 1;
					s[i][j + 1] += 1;
				}
		for (i = 1; i <= n; i++)// 找寻剩多少块岛屿；
			for (j = 1; j <= n; j++)
				if (s[i][j] == '8') {
					zx2(i, j); // 将同一块岛屿 标记防重复
					sum++;
				}
//		for (i = 1; i <= n; i++) {// 输出不会被淹没的岛屿图
//			for (j = 1; j <= n; j++)
//				System.out.print(s[i][j]);
//			System.out.println();
//		}
		System.out.println(ans - sum);
	}

	static void zx(int x, int y) {
		if (s[x][y] != '#')
			return;
		s[x][y] = '4';
		zx(x + 1, y);
		zx(x - 1, y);
		zx(x, y - 1);
		zx(x, y + 1);

	}

	static void zx2(int x, int y) {
		if (s[x][y] >= '4' && s[x][y] <= '9')// 为岛屿则全部淹没（不管这个大岛最后有多少小岛出来）
		{
			s[x][y] = '*';
			zx2(x + 1, y);
			zx2(x - 1, y);
			zx2(x, y - 1);
			zx2(x, y + 1);
		}
		return;
	}
}
